# SVD & LSA
# 方阵的分解
矩阵是维方阵,是维向量,是矩阵的一个特征值,是矩阵的特征值对应的特征向量。计算出特征值和特征向量后,就可以将矩阵进行特征分解,计算所有特征值和对应的特征向量,可以表示为
其中是这个特征向量所张成的维方阵,而是这n个特征值为主对角线的维方阵。
但是,按此方法进行分解,要求必须是方阵,如果不是方阵,则通过SVD进行分解。
# SVD分解
SVD也是矩阵进行分解,但是和特征分解不同,SVD不要求矩阵为方阵,假设矩阵为的矩阵,则可以定义SVD分解为
其中是的矩阵,是的矩阵,主对角线上是奇异值,是的矩阵,且,。
将和相乘,即可得到一个方阵,因此对其进行特征分解,如下:
此时可以得到对应的个特征值和特征向量,将其张成的矩阵,则是上面的矩阵,同理可以通过特征分解计算矩阵。
通过上式可以求解
# 主题模型LSA的例子
目标:有n句话,来从中提取存在可能哪些主题。
每句话用TFIDFVector或者CountVector进行表示,构造稀疏矩阵。比如存在200句话,BOW中存在1024个单词,则可以用矩阵(200, 1024)进行表示,之后对其进行SVD分解,得到U$矩阵(200, 200)表示200个样本,对应了200个topic, 矩阵(200, )表示200个表征topic分数的奇异值和矩阵(200, 1024)表示200个topic对应1024个vocab,这个是经过转置后的。
此时可以取前个奇异值来表征topic的信息,也可以用矩阵的topic所对应的vocab来表征每个topic的关键词。